Android অ্যাপ্লিকেশনের মূল কাঠামো তৈরি করার জন্য চারটি প্রধান কম্পোনেন্ট ব্যবহার করা হয়। এগুলো হল Activity, Service, Content Provider, এবং Broadcast Receiver। প্রতিটি কম্পোনেন্টের নিজস্ব ভূমিকা রয়েছে এবং এগুলো একে অপরের সাথে সমন্বয় করে কাজ করে, যা একটি সম্পূর্ণ অ্যাপ্লিকেশন তৈরিতে সহায়তা করে। নিচে প্রতিটি কম্পোনেন্টের বিশদ আলোচনা করা হলো:
Android Application Components
১. Activity
Activity হল একটি Android অ্যাপ্লিকেশনের মূল UI কম্পোনেন্ট, যা ব্যবহারকারী ইন্টারফেস তৈরি করে এবং ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করতে দেয়। প্রতিটি Activity একটি উইন্ডো তৈরি করে, যেখানে UI উপাদান যেমন বোতাম, টেক্সটবক্স ইত্যাদি থাকে। একটি অ্যাপ্লিকেশনে একাধিক Activity থাকতে পারে।
বৈশিষ্ট্য:
- প্রতিটি Activity একটি স্ক্রিন বা UI উপস্থাপন করে।
- onCreate(), onStart(), onResume(), onPause(), onStop(), এবং onDestroy() মেথডের মাধ্যমে একটি Activity এর জীবনচক্র পরিচালিত হয়।
- Activity দুটি প্রকার হতে পারে:
- Main Activity: অ্যাপ্লিকেশন শুরু করার জন্য।
- Secondary Activity: অন্যান্য স্ক্রিন বা পেজ পরিচালনার জন্য।
উদাহরণ:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
ব্যবহার:
- অ্যাপ্লিকেশনের বিভিন্ন স্ক্রিনের জন্য।
- ইউজার ইন্টারফেস পরিচালনা করার জন্য।
২. Service
Service হল একটি Android কম্পোনেন্ট যা ব্যাকগ্রাউন্ডে দীর্ঘ সময় ধরে কাজ চালিয়ে যেতে পারে এবং এটি সরাসরি ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন করে না। Service ব্যাকগ্রাউন্ড প্রসেসিংয়ের জন্য ব্যবহৃত হয়, যেমন নেটওয়ার্কে ডেটা ফেচ করা, ফাইল ডাউনলোড করা, মিউজিক প্লেয়িং ইত্যাদি।
বৈশিষ্ট্য:
- Service সরাসরি UI তে কাজ করে না, বরং ব্যাকগ্রাউন্ডে চালিত হয়।
- একটি Service শুরু করার পর সেটি অটোমেটিকভাবে বন্ধ হয় না, যতক্ষণ না আপনি ইচ্ছাকৃতভাবে সেটি বন্ধ করেন।
- Service দুই প্রকার:
- Started Service: যখন একটি কম্পোনেন্ট (যেমন Activity) সার্ভিস শুরু করে, সেটি ব্যাকগ্রাউন্ডে কাজ করে এবং শেষ হলে বন্ধ হয়।
- Bound Service: এটি একটি ক্লায়েন্টের সাথে সংযুক্ত থাকে এবং ক্লায়েন্ট অ্যাপ্লিকেশন কাজ শেষ করলে বন্ধ হয়।
উদাহরণ:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Service logic goes here
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
ব্যবহার:
- ব্যাকগ্রাউন্ডে মিউজিক প্লে করা।
- ডেটা সিঙ্ক করা।
- ব্যাকগ্রাউন্ড টাস্ক প্রক্রিয়াকরণ।
৩. Content Provider
Content Provider Android এর একটি কম্পোনেন্ট যা অ্যাপ্লিকেশনগুলির মধ্যে ডেটা শেয়ার করতে ব্যবহৃত হয়। এটি SQL ডেটাবেস, ফাইল সিস্টেম, বা অন্য কোন ডেটা উৎস থেকে ডেটা অ্যাক্সেস করতে দেয়। Content Provider একটি ইউনিফাইড ইন্টারফেস প্রদান করে, যার মাধ্যমে অন্য অ্যাপ্লিকেশন বা কম্পোনেন্ট ডেটা রিড বা রাইট করতে পারে।
বৈশিষ্ট্য:
- এটি বিভিন্ন অ্যাপ্লিকেশনের মধ্যে ডেটা শেয়ার করার জন্য ব্যবহৃত হয়।
- Content Provider URIs এর মাধ্যমে ডেটা অ্যাক্সেস করে।
- SQLite, JSON, বা XML ফাইলের মাধ্যমে ডেটা সংরক্ষণ এবং শেয়ারিং সম্ভব।
- CRUD অপারেশন (Create, Read, Update, Delete) এর মাধ্যমে ডেটা ম্যানিপুলেশন করা যায়।
উদাহরণ:
public class MyContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
// Initialize the content provider
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
// Provide data to the calling app
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
// Insert new data
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// Delete data
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
// Update data
return 0;
}
}
ব্যবহার:
- ডেটাবেস অ্যাক্সেস এবং ম্যানেজমেন্ট।
- ফাইল সিস্টেম বা SQL ডেটাবেস থেকে ডেটা শেয়ার করা।
৪. Broadcast Receiver
Broadcast Receiver হল একটি কম্পোনেন্ট, যা Android সিস্টেম বা অন্য অ্যাপ্লিকেশন থেকে ব্রডকাস্ট করা মেসেজ (Broadcast) গ্রহণ করে এবং তা প্রক্রিয়া করে। Broadcast Receivers সাধারণত সিস্টেম ব্রডকাস্ট ইভেন্টগুলির জন্য ব্যবহৃত হয়, যেমন ব্যাটারি কমে যাওয়া, ইন্টারনেট কানেকশন চালু হওয়া ইত্যাদি।
বৈশিষ্ট্য:
- Broadcast Receiver সরাসরি UI নিয়ে কাজ করে না, তবে এটি ইভেন্ট অনুযায়ী UI এর অন্যান্য কম্পোনেন্টকে সক্রিয় করতে পারে।
- এটি সাধারণত ব্যাকগ্রাউন্ডে কাজ করে এবং সিস্টেম বা অ্যাপ্লিকেশন দ্বারা ব্রডকাস্ট হওয়া ইভেন্টের জন্য অপেক্ষা করে।
- onReceive() মেথডের মাধ্যমে ব্রডকাস্ট ইভেন্ট গ্রহণ করা হয়।
উদাহরণ:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Handle the received broadcast message
Toast.makeText(context, "Broadcast received!", Toast.LENGTH_SHORT).show();
}
}
ব্যবহার:
- ব্যাটারি লেভেল মনিটরিং।
- নেটওয়ার্ক পরিবর্তন পর্যবেক্ষণ।
- অন্যান্য সিস্টেম ইভেন্ট পরিচালনা করা।
উপসংহার:
Android অ্যাপ্লিকেশন কম্পোনেন্টগুলোর প্রত্যেকটির নিজস্ব গুরুত্বপূর্ণ ভূমিকা রয়েছে। Activity ব্যবহারকারীর সাথে ইন্টারফেস করে, Service ব্যাকগ্রাউন্ডে কাজ সম্পন্ন করে, Content Provider অ্যাপ্লিকেশনের মধ্যে ডেটা শেয়ার করতে দেয়, এবং Broadcast Receiver সিস্টেম ইভেন্টগুলো পরিচালনা করে। এই কম্পোনেন্টগুলো একত্রিত হয়ে একটি পূর্ণাঙ্গ Android অ্যাপ্লিকেশন গঠনে সহায়ক হয়।
Read more